import java.util.Scanner;
public class A24{
	public static void main(String[] args){
		//键盘录入:
		//第一套系统
		//nextInt();接收整数
		//nextDouble();接收小数
		//next();接收字符串
		//遇到空格,制表符,回车就停止接受.这些符号后面的数据就不会接收了
		
		//第二套系统
		//nextLine();接收字符串
		//可以接收空格,制表符,遇到回车才停止接收数据
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入第一个整数");
		int num1 = sc.nextInt();//我输入123 456
		System.out.println(num1);//打印:123
		System.out.println("请输入第二个整数");
		int num2 = sc.nextInt();//没有让我重新输入
		System.out.println(num2);//直接获取了我第一次输入的那一串数后面的那个456
		
		System.out.println("请输入第一个字符串");
		String str1 = sc.next();//我输入zcr lqq
		System.out.println(str1);//打印:zcr 
		System.out.println("请输入第二个整数");
		String str2 = sc.next();//没有让我重新输入
		System.out.println(str2);//直接获取了我第一次输入的那一串数后面的那个lqq
		
		sc.nextLine();//接收上一个换行符\n,没有这句话,后面不会让我们输入第一个字符串,直接就输第二个字符串
		
		System.out.println("请输入第一个字符串");
		String line1 = sc.nextLine();//我输入zcr lqq
		System.out.println(line1);//打印:zcr 
		
		//这里不需要sc.nextLine()
		//sc.next() 方法的逻辑是：跳过所有空白字符（空格、制表符、换行符），直到遇到第一个非空白字符，然后读取到下一个空白字符为止。
		//如果在 nextInt()/next() 之后直接调用 nextLine()，就会读取到残留的换行符（表现为 “跳过输入”）。
		//但 next() 之间的调用不会有这个问题，因为 next() 会自动跳过空白字符。
		//在nextLine() 之间的调用也不会有这个问题，因为 nextLine() 可以读取换行符\n。
		System.out.println("请输入第二个字符串");
		String line2 = sc.nextLine();//没有让我重新输入
		System.out.println(line2);//直接获取了我第一次输入的那一串数后面的那个lqq
	}
}